<!DOCTYPE html>
<html lang="zh" dir="auto">

<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>SML v3.5.0 | 幸福工厂模组</title>
<meta name="keywords" content="">
<meta name="description" content="发布日期：2023年8月5日 官方下载： 本站下载： 适配版本：U8 CL240610 更新日志： 主要更新 支持虚幻 5 引擎 项目适配游戏 CL240610 版本 模组放置在 Mods 目录而不再放在">
<meta name="author" content="VisualMOD">
<link rel="canonical" href="https://visualmod.gitee.io/satisfactory-mod/loader/v3.5.0/">
<link crossorigin="anonymous" href="/satisfactory-mod/assets/css/stylesheet.fda8facc5b630094d5b2968a3585893846cba1d07e967f92a271b6a941eb2d90.css" integrity="sha256-/aj6zFtjAJTVspaKNYWJOEbLodB&#43;ln&#43;SonG2qUHrLZA=" rel="preload stylesheet" as="style">
<script defer crossorigin="anonymous" src="/satisfactory-mod/assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG&#43;9vmJ0cTS&#43;ovo0FeA="
    onload="hljs.initHighlightingOnLoad();"></script>
<link rel="icon" href="https://visualmod.gitee.io/satisfactory-mod/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://visualmod.gitee.io/satisfactory-mod/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://visualmod.gitee.io/satisfactory-mod/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://visualmod.gitee.io/satisfactory-mod/apple-touch-icon.png">
<link rel="mask-icon" href="https://visualmod.gitee.io/satisfactory-mod/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="zh" href="https://visualmod.gitee.io/satisfactory-mod/loader/v3.5.0/">
<link rel="alternate" hreflang="en" href="https://visualmod.gitee.io/satisfactory-mod/en/loader/v3.5.0/">
<noscript>
    <style>
        #theme-toggle,
        .top-link {
            display: none;
        }

    </style>
    <style>
        @media (prefers-color-scheme: dark) {
            :root {
                --theme: rgb(29, 30, 32);
                --entry: rgb(46, 46, 51);
                --primary: rgb(218, 218, 219);
                --secondary: rgb(155, 156, 157);
                --tertiary: rgb(65, 66, 68);
                --content: rgb(196, 196, 197);
                --hljs-bg: rgb(46, 46, 51);
                --code-bg: rgb(55, 56, 62);
                --border: rgb(51, 51, 51);
            }

            .list {
                background: var(--theme);
            }

            .list:not(.dark)::-webkit-scrollbar-track {
                background: 0 0;
            }

            .list:not(.dark)::-webkit-scrollbar-thumb {
                border-color: var(--theme);
            }
        }

    </style>
</noscript><meta property="og:title" content="SML v3.5.0" />
<meta property="og:description" content="发布日期：2023年8月5日 官方下载： 本站下载： 适配版本：U8 CL240610 更新日志： 主要更新 支持虚幻 5 引擎 项目适配游戏 CL240610 版本 模组放置在 Mods 目录而不再放在" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://visualmod.gitee.io/satisfactory-mod/loader/v3.5.0/" /><meta property="article:section" content="loader" />
<meta property="article:published_time" content="2023-08-06T12:00:00+08:00" />
<meta property="article:modified_time" content="2023-08-06T12:00:00+08:00" />

<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="SML v3.5.0"/>
<meta name="twitter:description" content="发布日期：2023年8月5日 官方下载： 本站下载： 适配版本：U8 CL240610 更新日志： 主要更新 支持虚幻 5 引擎 项目适配游戏 CL240610 版本 模组放置在 Mods 目录而不再放在"/>


<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [, 
    {
      "@type": "ListItem",
      "position":  2 ,
      "name": "模组加载器 SML",
      "item": "https://visualmod.gitee.io/satisfactory-mod/loader/"
    }, 
    {
      "@type": "ListItem",
      "position":  3 ,
      "name": "SML v3.5.0",
      "item": "https://visualmod.gitee.io/satisfactory-mod/loader/v3.5.0/"
    }
  ]
}
</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "SML v3.5.0",
  "name": "SML v3.5.0",
  "description": "发布日期：2023年8月5日 官方下载： 本站下载： 适配版本：U8 CL240610 更新日志： 主要更新 支持虚幻 5 引擎 项目适配游戏 CL240610 版本 模组放置在 Mods 目录而不再放在",
  "keywords": [
    
  ],
  "articleBody": "发布日期：2023年8月5日\n官方下载： 本站下载： 适配版本：U8 CL240610\n更新日志：\n主要更新 支持虚幻 5 引擎 项目适配游戏 CL240610 版本 模组放置在 Mods 目录而不再放在 Plugins 目录 增加存档级模组设置：Mod Savegame Settings (or “Session Settings”) 游戏创建时和游戏中都可以对存档级设置进行修改 将 enableCheatConsoleCommands 设置替换为 Force Enable Cheats 存档级模组设置 在开始游戏菜单中增加模组自定义地图 Map selection only appears when there is more than one map to pick from Mods 按钮从原来的重生按钮下方移动至服务器管理按钮下方。 Localization support for SML, SMLEditor, and ExampleMod. If you’d like to translate, join the Discord and grab the translator role from #rules then check out the channels that grants. Removed -Username launch argument, UE5 changed the system this argument used to function and a replacement has not yet been created Fixed VRAM leak from retrieving a mod’s icon multiple times Added enableFunchookLogging config option added to enable troubleshooting rare crash 针对模组开发者 Read the guide we wrote to summarize new features and help you update your mod! https://docs-dev.ficsit.app/satisfactory-modding/latest/Development/UpdatingFromSml34.html\nAdded mod creation and uplugin editing wizard with template support in Alpakit. Use this now instead of New Plugin and editing the uplugin manually. Mods can offer their own templates New Research Tree Editor utility included in SMLEditor Numerous extra examples in ExampleMod, including multiplayer compatibility code samples, research trees, and a custom level New utility - Blueprint Simple Construction Script hooks (docs) New utility - Widget Blueprint hooks (docs) New utility blueprint nodes (docs) Sort Array (via comparator function) Find Parent Widget of Class (for use in widget blueprint hooking) Find Child Widgets of Class (for use in widget blueprint hooking) SML Debugger additions: -WaitForDebugger, break on ensure and error (-NoExceptionHandler recommended when using debugger) Added Exploration Resource Sink track DataTable support Fixed struct reflection passing UScriptStruct* instead of struct pointer Fixed generated mod config structs being unusable Enable bCanEverTick on blueprints implementing Factory_Tick Improved logging when BindOnBPFunction fails (#172) Fixed Alpakit support for nested mods/plugins (ex. Mods/FolderName/Plugin1 and Mods/FolderName/Plugin2) Updated C++ module dependencies to silence UBT warnings at build time (#164) Prevent UE from launching Steam VR or Oculus VR when opening the starter project Moved Utility textures to SMLEditor (a2f3b79) Added Mod Module validation (401983a2414a6a8463501ce9d971ab78b9819b1c) Save Metadata header no longer writes indents (7c58bf736947d0f18d0083e482d9206f4a7c3849) ",
  "wordCount" : "486",
  "inLanguage": "zh",
  "datePublished": "2023-08-06T12:00:00+08:00",
  "dateModified": "2023-08-06T12:00:00+08:00",
  "author":{
    "@type": "Person",
    "name": "VisualMOD"
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://visualmod.gitee.io/satisfactory-mod/loader/v3.5.0/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "幸福工厂模组",
    "logo": {
      "@type": "ImageObject",
      "url": "https://visualmod.gitee.io/satisfactory-mod/favicon.ico"
    }
  }
}
</script>
</head>

<body class="" id="top">
<script>
    if (localStorage.getItem("pref-theme") === "dark") {
        document.body.classList.add('dark');
    } else if (localStorage.getItem("pref-theme") === "light") {
        document.body.classList.remove('dark')
    } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
        document.body.classList.add('dark');
    }

</script>

<header class="header">
    <nav class="nav">
        <div class="logo">
            <a href="https://visualmod.gitee.io/satisfactory-mod" accesskey="h" title="幸福工厂模组 (Alt + H)">幸福工厂模组</a>
            <div class="logo-switches">
                <button id="theme-toggle" accesskey="t" title="(Alt + T)">
                    <svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
                        fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
                        stroke-linejoin="round">
                        <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
                    </svg>
                    <svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
                        fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
                        stroke-linejoin="round">
                        <circle cx="12" cy="12" r="5"></circle>
                        <line x1="12" y1="1" x2="12" y2="3"></line>
                        <line x1="12" y1="21" x2="12" y2="23"></line>
                        <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
                        <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
                        <line x1="1" y1="12" x2="3" y2="12"></line>
                        <line x1="21" y1="12" x2="23" y2="12"></line>
                        <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
                        <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
                    </svg>
                </button>
                <ul class="lang-switch"><li>|</li>
                    <li>
                        <a href="https://visualmod.gitee.io/satisfactory-mod/en/" title="English"
                            aria-label="English">English</a>
                    </li>
                </ul>
            </div>
        </div>
        <ul id="menu">
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/manager" title="模组管理器">
                    <span>模组管理器<small>&nbsp;SMM</small></span>
                </a>
            </li>
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/loader" title="模组加载器">
                    <span>模组加载器<small>&nbsp;SML</small></span>
                </a>
            </li>
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/home/modlist" title="⚙ 模组列表">
                    <span>⚙ 模组列表</span>
                </a>
            </li>
            <li>
                <a href="https://visualmod.gitee.io/satisfactory-mod/search" title="🔍搜索 (Alt &#43; /)" accesskey=/>
                    <span>🔍搜索</span>
                </a>
            </li>
        </ul>
    </nav>
</header>
<main class="main">

<article class="post-single">
  <header class="post-header">
    <div class="breadcrumbs"><a href="https://visualmod.gitee.io/satisfactory-mod">主页</a>&nbsp;»&nbsp;<a href="https://visualmod.gitee.io/satisfactory-mod/loader/">模组加载器 SML</a></div>
    <h1 class="post-title entry-hint-parent">
      SML v3.5.0
    </h1>
    <div class="post-meta"><span title='2023-08-06 12:00:00 +0800 CST'>八月 6, 2023</span>&nbsp;·&nbsp;VisualMOD&nbsp;|&nbsp;语言:
<ul class="i18n_list">
    <li>
        <a href="https://visualmod.gitee.io/satisfactory-mod/en/loader/v3.5.0/">English</a>
    </li>
</ul>

</div>
  </header> 
  <div class="post-content"><p>发布日期：2023年8月5日</p>
<p>官方下载：<a class="deco-none" href="https://github.com/satisfactorymodding/SatisfactoryModLoader/releases/tag/v3.5.0" target="_blank"><img class="inline-img in-text"height="24" src="https://visualmod.gitee.io/satisfactory-mod/images/github.svg" alt="SatisfactoryModLoader v3.5.0" style="object-fit:contain"></a>   <a class="deco-none" href="https://github.com/satisfactorymodding/SatisfactoryModLoader/releases/download/v3.5.0/SML.zip" target="_blank"><img class="inline-img in-text"height="24" src="https://visualmod.gitee.io/satisfactory-mod/images/zip.svg" alt="SML.zip" style="object-fit:contain"></a></p>
<p>本站下载：<a class="deco-none" href="https://gitee.com/visualmod/satisfactory-mod/releases/download/sml-v3.5.0/SML.zip" target="_blank"><img class="inline-img in-text"height="24" src="https://visualmod.gitee.io/satisfactory-mod/images/gitee.svg" alt="SML.zip" style="object-fit:contain"></a>   <a class="deco-none" href="https://smr.hustag.cn/smr/sml/download/v3.5.0/SML.zip" target="_blank"><img class="inline-img in-text"height="24" src="https://visualmod.gitee.io/satisfactory-mod/images/txcloud.svg" alt="SML.zip" style="object-fit:contain"></a></p>
<p>适配版本：U8 CL240610</p>
<hr>
<p>更新日志：</p>
<h1 id="主要更新">主要更新<a hidden class="anchor" aria-hidden="true" href="#主要更新">#</a></h1>
<ul>
<li>支持虚幻 5 引擎</li>
<li>项目适配游戏 CL240610 版本</li>
<li>模组放置在 <code>Mods</code> 目录而不再放在 <code>Plugins</code> 目录</li>
<li>增加存档级模组设置：Mod Savegame Settings (or &ldquo;Session Settings&rdquo;)
<ul>
<li>游戏创建时和游戏中都可以对存档级设置进行修改</li>
</ul>
</li>
<li>将 <code>enableCheatConsoleCommands</code> 设置替换为 <code>Force Enable Cheats</code> 存档级模组设置</li>
<li>在开始游戏菜单中增加模组自定义地图
<ul>
<li>Map selection only appears when there is more than one map to pick from</li>
</ul>
</li>
<li><code>Mods</code> 按钮从原来的重生按钮下方移动至服务器管理按钮下方。</li>
<li>Localization support for SML, SMLEditor, and ExampleMod. If you&rsquo;d like to translate, join the Discord and grab the translator role from #rules then check out the channels that grants.</li>
<li>Removed <code>-Username</code> launch argument, UE5 changed the system this argument used to function and a replacement has not yet been created</li>
<li>Fixed VRAM leak from retrieving a mod&rsquo;s icon multiple times</li>
<li>Added <code>enableFunchookLogging</code> config option added to enable troubleshooting rare crash</li>
</ul>
<h1 id="针对模组开发者">针对模组开发者<a hidden class="anchor" aria-hidden="true" href="#针对模组开发者">#</a></h1>
<p>Read the guide we wrote to summarize new features and help you update your mod!
<a href="https://docs-dev.ficsit.app/satisfactory-modding/latest/Development/UpdatingFromSml34.html">https://docs-dev.ficsit.app/satisfactory-modding/latest/Development/UpdatingFromSml34.html</a></p>
<ul>
<li>Added mod creation and uplugin editing wizard with template support in Alpakit. Use this now instead of New Plugin and editing the uplugin manually.
<ul>
<li>Mods can offer their own templates</li>
</ul>
</li>
<li>New <a href="https://docs.ficsit.app/satisfactory-modding/latest/Development/UpdatingFromSml34.html#_research_tree_editor">Research Tree Editor</a>  utility included in SMLEditor</li>
<li>Numerous extra examples in ExampleMod, including multiplayer compatibility code samples, research trees, and a custom level</li>
<li>New utility - Blueprint Simple Construction Script hooks (<a href="https://docs.ficsit.app/satisfactory-modding/latest/Development/ModLoader/SimpleConstructionScript.html">docs</a>)</li>
<li>New utility - Widget Blueprint hooks (<a href="https://docs.ficsit.app/satisfactory-modding/latest/Development/ModLoader/WidgetBlueprintHooks.html">docs</a>)</li>
<li>New utility blueprint nodes (<a href="https://docs.ficsit.app/satisfactory-modding/latest/Development/ModLoader/BlueprintInterface.html">docs</a>)
<ul>
<li>Sort Array (via comparator function)</li>
<li>Find Parent Widget of Class (for use in widget blueprint hooking)</li>
<li>Find Child Widgets of Class (for use in widget blueprint hooking)</li>
</ul>
</li>
<li>SML Debugger additions: <code>-WaitForDebugger</code>, break on ensure and error (<code>-NoExceptionHandler</code> recommended when using debugger)</li>
<li>Added Exploration Resource Sink track DataTable support</li>
<li>Fixed struct reflection passing UScriptStruct* instead of struct pointer</li>
<li>Fixed generated mod config structs being unusable</li>
<li>Enable bCanEverTick on blueprints implementing Factory_Tick</li>
<li>Improved logging when BindOnBPFunction fails (#172)</li>
<li>Fixed Alpakit support for nested mods/plugins (ex. <code>Mods/FolderName/Plugin1</code> and <code>Mods/FolderName/Plugin2</code>)</li>
<li>Updated C++ module dependencies to silence UBT warnings at build time (#164)</li>
<li>Prevent UE from launching Steam VR or Oculus VR when opening the starter project</li>
<li>Moved Utility textures to SMLEditor (a2f3b79)</li>
<li>Added Mod Module validation (401983a2414a6a8463501ce9d971ab78b9819b1c)</li>
<li>Save Metadata header no longer writes indents (7c58bf736947d0f18d0083e482d9206f4a7c3849)</li>
</ul>


  </div>

  <footer class="post-footer">
    <ul class="post-tags">
    </ul>
  </footer>
</article>
    </main>
    
<footer class="footer">
    <span>&copy; 2023 <a href="https://visualmod.gitee.io/satisfactory-mod">幸福工厂模组</a></span>
    <span>
        Powered by
        <a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
        <a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
    </span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
        <path d="M12 6H0l6-6z" />
    </svg>
</a>

<script>
    let menu = document.getElementById('menu')
    if (menu) {
        menu.scrollLeft = localStorage.getItem("menu-scroll-position");
        menu.onscroll = function () {
            localStorage.setItem("menu-scroll-position", menu.scrollLeft);
        }
    }

    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
        anchor.addEventListener("click", function (e) {
            e.preventDefault();
            var id = this.getAttribute("href").substr(1);
            if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
                document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
                    behavior: "smooth"
                });
            } else {
                document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
            }
            if (id === "top") {
                history.replaceState(null, null, " ");
            } else {
                history.pushState(null, null, `#${id}`);
            }
        });
    });

</script>
<script>
    var mybutton = document.getElementById("top-link");
    window.onscroll = function () {
        if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
            mybutton.style.visibility = "visible";
            mybutton.style.opacity = "1";
        } else {
            mybutton.style.visibility = "hidden";
            mybutton.style.opacity = "0";
        }
    };

</script>
<script>
    document.getElementById("theme-toggle").addEventListener("click", () => {
        if (document.body.className.includes("dark")) {
            document.body.classList.remove('dark');
            localStorage.setItem("pref-theme", 'light');
        } else {
            document.body.classList.add('dark');
            localStorage.setItem("pref-theme", 'dark');
        }
    })

</script>
<script>
    document.querySelectorAll('pre > code').forEach((codeblock) => {
        const container = codeblock.parentNode.parentNode;

        const copybutton = document.createElement('button');
        copybutton.classList.add('copy-code');
        copybutton.innerHTML = '复制';

        function copyingDone() {
            copybutton.innerHTML = '已复制！';
            setTimeout(() => {
                copybutton.innerHTML = '复制';
            }, 2000);
        }

        copybutton.addEventListener('click', (cb) => {
            if ('clipboard' in navigator) {
                navigator.clipboard.writeText(codeblock.textContent);
                copyingDone();
                return;
            }

            const range = document.createRange();
            range.selectNodeContents(codeblock);
            const selection = window.getSelection();
            selection.removeAllRanges();
            selection.addRange(range);
            try {
                document.execCommand('copy');
                copyingDone();
            } catch (e) { };
            selection.removeRange(range);
        });

        if (container.classList.contains("highlight")) {
            container.appendChild(copybutton);
        } else if (container.parentNode.firstChild == container) {
            
        } else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
            
            codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
        } else {
            
            codeblock.parentNode.appendChild(copybutton);
        }
    });
</script>
</body>

</html>
